﻿#define _CRT_SECURE_NO_WARNINGS 1

//#include<stdio.h>
//int main()
//{
//	int a[12] = { 1,2,3,4,5,6,7,8,9,10,11,12 }, * p[4], i;
//	for (int i = 0; i < 4; i++)
//		p[i] = &a[i * 3];
//	printf("%d\n", p[3][2]);
//	return 0;
//}








//#include<stdio.h>
//int main()
//{
//	char a = 'a', b;
//	printf("%c,", ++a);
//	printf("%c\n", b = a++);
//	return 0;
//}










////自除数
////自除数 不允许包含 0 。
////给定两个整数 left 和 right ，返回一个列表，列表的元素是范围 [left, right] 内所有的 自除数 。
////
////示例 1：
////输入：left = 1, right = 22
////输出：[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]
////
////示例 2:
////输入：left = 47, right = 85
////输出：[48, 55, 66, 77]
//
//int* selfDividingNumbers(int left, int right, int* returnSize) {
//    int* arr = (int*)malloc(sizeof(int) * 1000);
//    *returnSize = 0;
//    for (int i = left; i <= right; i++)
//    {
//        int num = i;
//        while (num)
//        {
//            int k = num % 10;
//            if (k == 0 || i % k != 0)
//            {
//                break;
//            }
//            num /= 10;
//        }
//        if (num == 0)
//            arr[(*returnSize)++] = i;
//    }
//    return arr;
//}














////除自身以外数组的乘积
////给你一个整数数组 nums，返回 数组 answer ，其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。
////题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32 位 整数范围内。
////请不要使用除法，且在 O(n) 时间复杂度内完成此题。
////
////示例 1:
////输入: nums = [1, 2, 3, 4]
////输出 : [24, 12, 8, 6]
////
////示例 2 :
////输入 : nums = [-1, 1, 0, -3, 3]
////输出 : [0, 0, 9, 0, 0]
//
//int* productExceptSelf(int* nums, int numsSize, int* returnSize) {
//    int* arr = (int*)malloc(sizeof(int) * numsSize);
//    *returnSize = numsSize;
//    int left = 1;
//    int right = 1;
//    for (int i = 0; i < numsSize; i++)
//    {
//        arr[i] = left;
//        left *= nums[i];
//    }
//    for (int i = numsSize - 1; i >= 0; i--)
//    {
//        arr[i] *= right;
//        right *= nums[i];
//    }
//    return arr;
//}
